Definition

𝐜𝐨𝐍𝐏\mathbf{coNP} is the set of languages LL such that there exists a polynomial time algorithm AA with x∈L⟺A(x,y)=0x \in L \iff A(x,y) = 0.

In other words, there is a polynomial-time algorithm to verify "no" instances given an appropriate certificate.

Notes

  • It is known that 𝐏⊆𝐜𝐨𝐍𝐏\mathbf{P} \subseteq \mathbf{coNP}
  • It is conjectured that 𝐍𝐏≠𝐜𝐨𝐍𝐏\mathbf{NP} \neq \mathbf{coNP}
  • compare to NP
    • open question if 𝐜𝐨𝐍𝐏\mathbf{coNP} is different from 𝐍𝐏\mathbf{NP}
  • coNP-complete: in coNP and every coNP language is polynomial-time Karp reducible to it

References

  1. https://people.csail.mit.edu/dmoshkov/courses/adv-comp/scribe1.pdf
  2. https://math.stackexchange.com/questions/2334429/what-is-the-difference-between-np-and-conp